//package com.tools.scanner.utils
//
//import android.util.Log
//import com.google.android.gms.tasks.Tasks
//import com.google.mlkit.common.model.DownloadConditions
//import com.google.mlkit.common.model.RemoteModelManager
//import com.google.mlkit.nl.translate.TranslateRemoteModel
//import com.google.mlkit.nl.translate.Translation
//import com.google.mlkit.nl.translate.TranslatorOptions
//
//object TranslateUtil {
//
//    private val remoteModelManager = RemoteModelManager.getInstance()
//
//    fun hasModel(
//        sourceCode: String,
//        targetCode: String,
//        success: (Boolean) -> Unit,
//        fail: (Exception) -> Unit
//    ) {
//        val sourceModel = TranslateRemoteModel.Builder(sourceCode).build()
//        val sourceTask = remoteModelManager.isModelDownloaded(sourceModel)
//
//        val targetModel = TranslateRemoteModel.Builder(targetCode).build()
//        val targetTask = remoteModelManager.isModelDownloaded(targetModel)
//
//        Tasks.whenAllSuccess<Boolean>(sourceTask, targetTask)
//            .addOnSuccessListener { results ->
//                var isComplete = true
//
//                for (item in results) {
//                    if (!item) {
//                        isComplete = false
//                        break
//                    }
//                }
//                success(isComplete)
//            }
//            .addOnFailureListener {
//                fail(it)
//            }
//
//    }
//
//    fun downloadModel(
//        sourceCode: String,
//        targetCode: String,
//        success: () -> Unit,
//        fail: (Exception) -> Unit
//    ) {
//        val sourceModel = TranslateRemoteModel.Builder(sourceCode).build()
//        val targetModel = TranslateRemoteModel.Builder(targetCode).build()
//
//        val conditions = DownloadConditions.Builder()
//            .requireWifi()
//            .build()
//
//        val sourceTask = remoteModelManager.download(sourceModel, conditions)
//        val targetTask = remoteModelManager.download(targetModel, conditions)
//
//        Tasks.whenAllSuccess<Void>(sourceTask, targetTask)
//            .addOnSuccessListener { results ->
//                success()
//            }
//            .addOnFailureListener {
//                fail(it)
//            }
//    }
//
//    fun translate(
//        source: String,
//        target: String,
//        text: String
//    ): String {
//        val options = TranslatorOptions.Builder()
//            .setSourceLanguage(source)
//            .setTargetLanguage(target)
//            .build()
//
//        val task = Translation.getClient(options).translate(text)
//        return Tasks.await(task)
//    }
//
//}